package com.vhall.component.entity.gift.vo;


import com.vhall.component.framework.common.annotation.ParamName;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;


/**
 * @author xianglei
 * @date 2021/2/1
 */
@Data
public class useListDto implements Serializable {

    private static final long serialVersionUID = -6570732641620041306L;
    /**
     * PaaS应用ID
     */
    @ParamName("app_id")
    @NotBlank(message = "PaaS应用ID不能为空")
    private String appId;

    /**
     * 创建者ID
     */
    @ParamName("creator_id")
    @NotBlank(message = "creator_id不能为空")
    private String creatorId;

    /**
     * 表情来源类型：0 web 1 app
     */
    @ParamName("source_type")
    @Range(min = 0, max = 1)
    private Integer sourceType;

    /**
     * 表情来源状态：0 系统默认 1 前台用户添加
     */
    @ParamName("source_status")
    @Range(min = 0, max = 1)
    private Integer sourceStatus;


    /**
     * 是否上下架 上下架：0下架， 1 上架（默认上架）
     */
    @ParamName("goods_status")
    @Range(min = 0, max = 1)
    private Integer goodsStatus;

    /**
     * 开始游标，默认为0
     */
    private Integer offset = 0;

    /**
     * 每次查询取回的条数,默认10条
     */
    private Integer limit = 10;

    /**
     * 排序字段，如果需要多个字段，则英文逗号连接
     */
    @ParamName("sort_by")
    private String sortBy = "created_at";

    /**
     * 排序类型：asc 正序  desc 倒序，如果需要多重排序，则需要跟前面的sort_by做对应，同样是英文逗号连接
     * 默认升序
     */
    @ParamName("sort_type")
    @Pattern(regexp = "(asc)|(desc)", message = "已选的属性 sort_type 非法。")
    private String sortType = "asc";

    /**
     * 来源ID
     */
    @ParamName("room_id")
    @NotBlank(message = "room_id不能为空")
    private String roomId;

    /**
     * 表情类型
     */
    @ParamName("gift_type")
    private String giftType;

    /**
     * 使用状态：0 未使用 1 使用
     */
    @Range(min = 0, max = 1)
    private Integer status = 0;

    /**
     * 表情名称
     */
    private String name;

    /**
     * 查询条件返回的结果集的总条数
     */
    private Integer count;

}


